package com.zbkj.common.request.project;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * @Auther:
 * @Date: 2024/7/15 15:18
 * @Description:
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "AiEstimateRequest对象", description = "项目估算AI请求对象")
public class AiEstimateRequest implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("通知类型：1进行估算 2 停止估算")
    private Integer type;

    @ApiModelProperty("请求流水号")
    private String reqNo;

    @ApiModelProperty("项目ID")
    private Long projectId;

    @ApiModelProperty("项目名称")
    private String projectName;

    @ApiModelProperty("项目类型：1 国标项目，2 军标项目")
    private Integer projectType;

    @ApiModelProperty("处理类型：1 客户项目文件，2需求拆分")
    private Integer sourceType;

    @ApiModelProperty("重用程度 军标重用程度选项 201:新研,202:改造")
    private Integer reuseItem;

    @ApiModelProperty("需求拆分内容")
    private List<AiTileRequest> contentList;

    @ApiModelProperty("客户上传项目文件集合")
    private List<FileContent> fileList;

    @Getter
    @Setter
    public static class AiTileRequest {
        @ApiModelProperty("子系统名称")
        private String subsysName;
        @ApiModelProperty("模块")
        private String title;
        @ApiModelProperty("模块顺序号")
        private Integer titleNum;
        @ApiModelProperty("标题下内容集合")
        List<AiContentRequest> contentList;
    }

    @Getter
    @Setter
    public static class AiContentRequest {
        @ApiModelProperty("内容")
        private String content;
        @ApiModelProperty("内容顺序号")
        private Integer sortNum;
    }

    @Getter
    @Setter
    public static class FileContent {
        @ApiModelProperty("文件名")
        private String fileName;
        @ApiModelProperty("文件url地址")
        private String fileUrl;
        @ApiModelProperty("顺序号")
        private Integer sortNum;
    }
}
